package com.gsk.europepharma.salesReport.struts.actions;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Query;
import org.hibernate.Session;

import com.gsk.europepharma.salesReport.hibernate.dao.tbSpBoSRAdmPdtDAO;
import com.gsk.europepharma.salesReport.hibernate.dao.tbSpBoSRSectoDAO;
import com.gsk.europepharma.salesReport.utils.MixProduit;
import com.gsk.europepharma.salesReport.utils.Produit;

public class InitializeMixProduit extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		HttpSession sessionObject = request.getSession();
		
		String source = request.getParameter("source");
		Integer CS_SRC = Integer.parseInt(source);
		
		// Liste de tous les produits  
		tbSpBoSRSectoDAO sectoDao = new tbSpBoSRSectoDAO();
        Session session = sectoDao.getSession();
        Query req = session.getNamedQuery(tbSpBoSRSectoDAO.QUERY_RECUP_PRODUITS);
		req.setInteger("cs_adm_pdt", (Integer) sessionObject.getAttribute("cs_adm_pdt"));
		req.setInteger("cs_src", CS_SRC);
		ArrayList result = new ArrayList(req.list());
		Iterator iter = result.iterator();
		List<Produit> produits = new ArrayList<Produit>();
		while (iter.hasNext()) {
			Object[] tmp = (Object[]) iter.next();
			String color = "";
			if (tmp[4] != null) {
				color = "#" + tmp[4].toString();
			}
			boolean checked = (tmp[3].toString().equals("1")); // produit par defaut ou pas 
			Produit produit = new Produit(Integer.parseInt(tmp[0].toString()), Integer.parseInt(tmp[1].toString()), tmp[2].toString(), checked, color);
			produits.add(produit);
		}
        MixProduit mixProduit = new MixProduit();
        mixProduit.setProduits(produits);
        sessionObject.setAttribute("mixProduit", mixProduit);
        
		return null;
	}

}
